﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using CROSLAND.BL.BE;
using System.Data.Common;
using System.Data;

namespace CROSLAND.DL.DALC.MSSQL
{
    public class ReclamoDALC : BaseDALC, IReclamoDALC
    {
       

        #region IReclamoDALC Members

        public CombosReclamoBE getCombosReclamo()
        {
            //CombosReclamoBE rpta = null;
            //IRfcFunction function = null; RfcDestination dest = null;
            ////InMemoryDestinationConfiguration dc = new InMemoryDestinationConfiguration();

            //try
            //{
            //    /*try
            //    {
            //        RfcDestinationManager.RegisterDestinationConfiguration(dc);
            //    }
            //    catch { }
            //    RfcDestination dest = RfcDestinationManager.GetDestination(this._connId);
            //    */
            //    dest = DALC.getDestination();
            //    function = dest.Repository.CreateFunction("ZWEB_COMBOS_RECLAMO");                
            //    function.Invoke(dest);

            //    IRfcTable T_MOTIVO = function.GetTable("T_MOTIVO");
            //    IRfcTable T_STATUS = function.GetTable("T_STATUS");
            //    IRfcTable T_RESULTADO = function.GetTable("T_RESULTADO");
            //    IRfcTable T_SECTOR = function.GetTable("T_SECTOR");
            //    IRfcTable T_VENDEDORES = function.GetTable("T_VENDEDORES");
            //    IRfcTable T_RETURN = function.GetTable("T_RETURN");
            //    IRfcTable T_JUSTIFICACION = function.GetTable("T_JUSTIFICACION");

            //    rpta = new CombosReclamoBE();
            //    GenericBE objG = null;
            //    foreach (IRfcStructure item in T_MOTIVO)
            //    {
            //        objG = new GenericBE();
            //        objG.Codigo = item["ID_ELEMENTO"].GetString();
            //        objG.Descripcion = item["ID_ELEMENTO"].GetString() + "::" + item["N_ELEMENTO"].GetString();
            //        rpta.T_MOTIVO.Add(objG);
            //    }
            //    foreach (IRfcStructure item in T_STATUS)
            //    {
            //        objG = new GenericBE();
            //        objG.Codigo = item["ID_ELEMENTO"].GetString();
            //        objG.Descripcion = item["ID_ELEMENTO"].GetString() + "::" + item["N_ELEMENTO"].GetString();
            //        rpta.T_STATUS.Add(objG);
            //    }
            //    foreach (IRfcStructure item in T_RESULTADO)
            //    {
            //        objG = new GenericBE();
            //        objG.Codigo = item["ID_ELEMENTO"].GetString();
            //        objG.Descripcion = item["ID_ELEMENTO"].GetString() + "::" + item["N_ELEMENTO"].GetString();
            //        rpta.T_RESULTADO.Add(objG);
            //    }
            //    foreach (IRfcStructure item in T_SECTOR)
            //    {
            //        objG = new GenericBE();
            //        objG.Codigo = item["ID_ELEMENTO"].GetString();
            //        objG.Descripcion = item["ID_ELEMENTO"].GetString() + "::" + item["N_ELEMENTO"].GetString();
            //        rpta.T_SECTOR.Add(objG);
            //    }
            //    foreach (IRfcStructure item in T_VENDEDORES)
            //    {
            //        JustificaionBE objJ = new JustificaionBE();
            //        objJ.CodDep = item["ID_DEPENDIENTE"].GetString();
            //        objJ.Codigo = item["ID_ELEMENTO"].GetString();
            //        objJ.Descripcion = item["ID_ELEMENTO"].GetString() + "::" + item["N_ELEMENTO"].GetString();
            //        rpta.T_VENDEDORES.Add(objJ);
            //    }
            //    foreach (IRfcStructure item in T_JUSTIFICACION)
            //    {
            //        JustificaionBE objJ = new JustificaionBE();
            //        objJ.CodDep = item["ID_DEPENDIENTE"].GetString();
            //        objJ.Codigo = item["ID_ELEMENTO"].GetString();
            //        objJ.Descripcion = item["ID_ELEMENTO"].GetString() + "::" + item["N_ELEMENTO"].GetString();
            //        rpta.T_Justi.Add(objJ);
            //    }
            //}
            //catch (Exception ex)
            //{
            //    rpta = null;
            //    throw ex;
            //}
            //finally
            //{
            //    //RfcDestinationManager.UnregisterDestinationConfiguration(dc);
            //}
            //return rpta;
            return null;
        }

        public GenericBE set_Reclamo(DocReclamoBE pObjReclamo)
        {
            //GenericBE rpta = null;
            //IRfcFunction function = null; RfcDestination dest = null;
            ////InMemoryDestinationConfiguration dc = new InMemoryDestinationConfiguration();
            //try
            //{
            //    //try
            //    //{
            //    //    RfcDestinationManager.RegisterDestinationConfiguration(dc);
            //    //}
            //    //catch { }
            //    //RfcDestination dest = RfcDestinationManager.GetDestination(this._connId);
            //    dest = DALC.getDestination();
            //    rpta = new GenericBE();
            //    string rec = string.Empty;

            //    RfcStructureMetadata smVBKAVB = dest.Repository.GetStructureMetadata("VBKAVB");
            //    IRfcTable t_VBKAVB = smVBKAVB.CreateTable();
            //    //contactos
            //    if (!(pObjReclamo.Contactos == null))
            //    {
            //        IRfcStructure itmVBKAVB = smVBKAVB.CreateStructure();

            //        //rec = pObjReclamo.Contactos.VBELN.PadLeft(10, '0');
            //        //itmVBKAVB.SetValue("VBELN", pObjReclamo.Contactos.VBELN);
            //        itmVBKAVB.SetValue("ERDAT", ParametroDALC.dateNetToSap(pObjReclamo.Contactos.ERDAT));
            //        itmVBKAVB.SetValue("ERZET", pObjReclamo.Contactos.ERZET);
            //        itmVBKAVB.SetValue("ERNAM", pObjReclamo.Contactos.ERNAM);
            //        itmVBKAVB.SetValue("AEDAT", "");
            //        itmVBKAVB.SetValue("AEZET", "");
            //        itmVBKAVB.SetValue("AENAM", "");
            //        itmVBKAVB.SetValue("KTAAR", pObjReclamo.Contactos.KTAAR);
            //        itmVBKAVB.SetValue("VBTYP", pObjReclamo.Contactos.VBTYP);
            //        itmVBKAVB.SetValue("TRVOG", pObjReclamo.Contactos.TRVOG);
            //        itmVBKAVB.SetValue("VKORG", pObjReclamo.Contactos.VKORG);
            //        itmVBKAVB.SetValue("VTWEG", pObjReclamo.Contactos.VTWEG);
            //        itmVBKAVB.SetValue("SPART", pObjReclamo.Contactos.SPART);
            //        itmVBKAVB.SetValue("VKBUR", pObjReclamo.Contactos.VKBUR);
            //        itmVBKAVB.SetValue("VKGRP", pObjReclamo.Contactos.VKGRP);
            //        itmVBKAVB.SetValue("KTABG", ParametroDALC.dateNetToSap(pObjReclamo.Contactos.KTABG));
            //        itmVBKAVB.SetValue("KTAEN", ParametroDALC.dateNetToSap(pObjReclamo.Contactos.KTAEN));
            //        itmVBKAVB.SetValue("KTABT", pObjReclamo.Contactos.KTABT);
            //        itmVBKAVB.SetValue("KTAET", pObjReclamo.Contactos.KTAET);
            //        itmVBKAVB.SetValue("KTAGR", pObjReclamo.Contactos.KTAGR);
            //        itmVBKAVB.SetValue("KTAST", pObjReclamo.Contactos.KTAST);
            //        itmVBKAVB.SetValue("KTAER", pObjReclamo.Contactos.KTAER);
            //        itmVBKAVB.SetValue("KTAFK", pObjReclamo.Contactos.KTAFK);
            //        itmVBKAVB.SetValue("KTEXT", pObjReclamo.Contactos.KTEXT);
            //        itmVBKAVB.SetValue("KUNNR", pObjReclamo.Contactos.KUNNR);
            //        itmVBKAVB.SetValue("GBSTK", pObjReclamo.Contactos.GBSTK);
            //        itmVBKAVB.SetValue("PARVW", pObjReclamo.Contactos.PARVW);
            //        itmVBKAVB.SetValue("DIRECTION", pObjReclamo.Contactos.DIRECTION);
            //        itmVBKAVB.SetValue("KTEXT_MC", pObjReclamo.Contactos.KTEXT_MC);
            //        itmVBKAVB.SetValue("KTEXT_MC_LANGU", pObjReclamo.Contactos.KTEXT_MC_LANGU);
            //        itmVBKAVB.SetValue("VGBEL", pObjReclamo.Contactos.VGBEL.PadLeft(10, '0'));
            //        itmVBKAVB.SetValue("UPDKZ", "I");
            //        itmVBKAVB.SetValue("KTAEB", pObjReclamo.Contactos.KTAEB);
            //        t_VBKAVB.Append(itmVBKAVB);
            //    }

            //    RfcStructureMetadata smVBUKVB = dest.Repository.GetStructureMetadata("VBUKVB");
            //    IRfcTable t_VBUKVB = smVBUKVB.CreateTable();
            //    //Doc Comercial
            //    if (!(pObjReclamo.DocComercial == null))
            //    {
            //        IRfcStructure itmVBUKVB = smVBUKVB.CreateStructure();
            //        itmVBUKVB.SetValue("GBSTK", pObjReclamo.DocComercial.GBSTK);
            //        itmVBUKVB.SetValue("UVALL", pObjReclamo.DocComercial.UVALL);
            //        itmVBUKVB.SetValue("VBTYP", pObjReclamo.DocComercial.VBTYP);
            //        itmVBUKVB.SetValue("VBOBJ", pObjReclamo.DocComercial.VBOBJ);
            //        itmVBUKVB.SetValue("UPDKZ", "I");
            //        t_VBUKVB.Append(itmVBUKVB);
            //    }

            //    RfcStructureMetadata smRECLAMOS = dest.Repository.GetStructureMetadata("ZWEB_RECLAMOS");
            //    IRfcTable t_RECLAMOS = smRECLAMOS.CreateTable();
            //    //ZWEB_Reclamo
            //    if (!(pObjReclamo.Z_Reclamo == null))
            //    {

            //        IRfcStructure itmRECLAMOS = smRECLAMOS.CreateStructure();
            //        itmRECLAMOS.SetValue("MATNR", pObjReclamo.Z_Reclamo.MATNR);
            //        itmRECLAMOS.SetValue("MATN2", pObjReclamo.Z_Reclamo.MATNR2);
            //        itmRECLAMOS.SetValue("RECLA", pObjReclamo.Z_Reclamo.RECLA);
            //        itmRECLAMOS.SetValue("STAT1", pObjReclamo.Z_Reclamo.STAT1);
            //        itmRECLAMOS.SetValue("USER1", pObjReclamo.Z_Reclamo.USER1);
            //        itmRECLAMOS.SetValue("CMM1", pObjReclamo.Z_Reclamo.CMM1);
            //        itmRECLAMOS.SetValue("STAT2", pObjReclamo.Z_Reclamo.STAT2);
            //        itmRECLAMOS.SetValue("USER2", pObjReclamo.Z_Reclamo.USER2);
            //        itmRECLAMOS.SetValue("CMM2", pObjReclamo.Z_Reclamo.CMM2);
            //        itmRECLAMOS.SetValue("STAT3", pObjReclamo.Z_Reclamo.STAT3);
            //        itmRECLAMOS.SetValue("USER3", pObjReclamo.Z_Reclamo.USER3);
            //        itmRECLAMOS.SetValue("CMM3", pObjReclamo.Z_Reclamo.CMM3);
            //        //itmRECLAMOS.SetValue("VBELN", rec);
            //        itmRECLAMOS.SetValue("FCHA1", ParametroDALC.dateNetToSap(pObjReclamo.Z_Reclamo.FCHA1));
            //        itmRECLAMOS.SetValue("FCHA2", ParametroDALC.dateNetToSap(pObjReclamo.Z_Reclamo.FCHA2));
            //        itmRECLAMOS.SetValue("FCHA3", ParametroDALC.dateNetToSap(pObjReclamo.Z_Reclamo.FCHA3));
            //        //se adiciono el stat4 con código 9 - rhuapaya
            //        itmRECLAMOS.SetValue("STAT4", pObjReclamo.Z_Reclamo.STAT4);
            //        itmRECLAMOS.SetValue("USER4", pObjReclamo.Z_Reclamo.USER4);
            //        itmRECLAMOS.SetValue("CMM4", pObjReclamo.Z_Reclamo.CMM4);
            //        itmRECLAMOS.SetValue("FCHA4", ParametroDALC.dateNetToSap(pObjReclamo.Z_Reclamo.FCHA4));
            //        //***************************************************************
            //        itmRECLAMOS.SetValue("CPOSTAL", pObjReclamo.Z_Reclamo.CPOSTAL);
            //        itmRECLAMOS.SetValue("DIRECCION", pObjReclamo.Z_Reclamo.DIRECCION);
            //        itmRECLAMOS.SetValue("NIF", pObjReclamo.Z_Reclamo.NIF);
            //        itmRECLAMOS.SetValue("PCONTACTO", pObjReclamo.Z_Reclamo.PCONTACTO);
            //        itmRECLAMOS.SetValue("TELEFONO", pObjReclamo.Z_Reclamo.TELEFONO);

            //        t_RECLAMOS.Append(itmRECLAMOS);
            //    }
            //    RfcStructureMetadata smVBPAVB = dest.Repository.GetStructureMetadata("VBPAVB");
            //    IRfcTable t_VBPAVB = smVBPAVB.CreateTable();
            //    //Interlocutor 
            //    foreach (InterlocutorReclamoBE i in pObjReclamo.Interlocutor)
            //    {
                    
            //        IRfcStructure itmVBPAVB = smVBPAVB.CreateStructure();
            //        itmVBPAVB.SetValue("VBELN", "$000000001");
            //        itmVBPAVB.SetValue("POSNR", i.POSNR);
            //        itmVBPAVB.SetValue("PARVW", i.PARVW);
            //        itmVBPAVB.SetValue("KUNNR", i.KUNNR);
            //        itmVBPAVB.SetValue("PERNR", i.PERNR);
            //        itmVBPAVB.SetValue("PARNR", i.PARNR);
            //        itmVBPAVB.SetValue("ADRNR", i.ADRNR);
            //        if (i.PARVW.Equals("AG"))
            //        {
            //            itmVBPAVB.SetValue("ADRNR", "AG $00001");
            //            itmVBPAVB.SetValue("LAND1", "PE");
            //            itmVBPAVB.SetValue("ADRDA", "E");
            //            itmVBPAVB.SetValue("XCPDK", "X"); //falta pasar
            //            itmVBPAVB.SetValue("PARVW_FF", "X");
            //            itmVBPAVB.SetValue("NAME1", i.NOMBRE);
            //            itmVBPAVB.SetValue("NRART", "KU");
            //            itmVBPAVB.SetValue("FEHGR", "07");
            //            itmVBPAVB.SetValue("SPRAS", "S");
            //            itmVBPAVB.SetValue("TELFX", i.Telefono);
            //            itmVBPAVB.SetValue("J_1KFTBUS", i.Direccion);
            //            itmVBPAVB.SetValue("J_1KFREPRE", i.Ciudad); //ort01
            //            itmVBPAVB.SetValue("STKZN", "1"); //ADDRESS_TYPE
            //            itmVBPAVB.SetValue("REFLOGSYS", i.CodPostal); // PSTLZ
            //            itmVBPAVB.SetValue("HITYP", "X"); // indica que es eventual
            //            itmVBPAVB.SetValue("ABLAD", i.Mail);
            //            itmVBPAVB.SetValue("STCEG", i.NIF);
            //        }
            //        itmVBPAVB.SetValue("UPDKZ", "I");

            //        t_VBPAVB.Append(itmVBPAVB);
            //    }
            //    //verifico que el largo de los textos no sea mayor a 90 caracteres.
            //    int posSpace = 0;
            //    string texto = "";
            //    int contInicio = 0;
            //    foreach (TextoBE tb in pObjReclamo.Texto)
            //    {
            //        posSpace = 0;
            //        contInicio = 0;
            //        texto = "";
            //        posSpace = (tb.Descripcion.Length / 80);
            //        if (posSpace * 80 <= tb.Descripcion.Length) { posSpace++; }
            //        posSpace--;
            //        if (tb.Descripcion.Length > 130)
            //        {
            //            for (int cont = 1; cont <= posSpace; cont++)
            //            {
            //                if (!tb.Descripcion.Substring(cont * 80, 1).Equals("\r\n") &&
            //                    !tb.Descripcion.Substring(cont * 79, 1).Equals("\r\n"))
            //                {
            //                    tb.Descripcion = tb.Descripcion.Insert(cont * 80, "\r\n");
            //                }
            //            }
            //        }
            //    }

            //    RfcStructureMetadata smTEXTOS_RECLAMO = dest.Repository.GetStructureMetadata("ZWEB_TEXTOS_RECLAMO");
            //    IRfcTable t_smTEXTOS_RECLAMO = smTEXTOS_RECLAMO.CreateTable();
            //    foreach (TextoBE tb in pObjReclamo.Texto)
            //    {
            //        int k = tb.Descripcion.Length;
            //        tb.Descripcion = tb.Descripcion.Replace(Environment.NewLine, "|") + "|";
            //        if (tb.Descripcion.Length > 0)
            //        {
            //            if (tb.Descripcion.IndexOf("|", 0) > 0)
            //            {
            //                for (int i = 0, j = 0; tb.Descripcion.IndexOf("|", 0) >= 0; )
            //                {
            //                    //ZWEB_TEXTOS_RECLAMO t = new ZWEB_TEXTOS_RECLAMO();                                
            //                    IRfcStructure itmsmTEXTOS_RECLAMO = smTEXTOS_RECLAMO.CreateStructure();
            //                    i = tb.Descripcion.IndexOf("|", j);
            //                    itmsmTEXTOS_RECLAMO.SetValue("FID", tb.CodTexto);
            //                    itmsmTEXTOS_RECLAMO.SetValue("TDLINE", tb.Descripcion.Substring(0, i));
            //                    tb.Descripcion = tb.Descripcion.Substring(i + 1);
            //                    t_smTEXTOS_RECLAMO.Append(itmsmTEXTOS_RECLAMO);
            //                    i++;
            //                }
            //            }
            //        }
            //    }

            //    RfcStructureMetadata smReturn = dest.Repository.GetStructureMetadata("BAPIRET2");
            //    IRfcTable t_smReturn = smReturn.CreateTable();

            //    function = dest.Repository.CreateFunction("ZWEB_CREA_RECLAMOS");
            //    function.SetValue("T_FXVBKA", t_VBKAVB);
            //    function.SetValue("T_FXVBPA", t_VBPAVB);
            //    function.SetValue("T_FXVBUK", t_VBUKVB);
            //    function.SetValue("T_Z_RECLAMOS", t_RECLAMOS);
            //    function.SetValue("T_TEXTOS", t_smTEXTOS_RECLAMO);
            //    function.Invoke(dest);
            //    rpta.Descripcion = string.Empty;
            //    IRfcTable T_RETURN = function.GetTable("T_RETURN");

            //    foreach (IRfcStructure item in T_RETURN)
            //    {
            //        if (item.GetString("TYPE").Equals("S"))
            //        {
            //            rpta.Codigo = "S";
            //            rpta.Descripcion = item.GetString("MESSAGE").Trim() + ".";
            //            break;
            //        }
            //        else
            //        {
            //            rpta.Codigo = item.GetString("TYPE");
            //            rpta.Descripcion = rpta.Descripcion + ", " + item.GetString("MESSAGE").Trim() + ".";
            //        }
            //    }
            //}
            //catch (Exception ex)
            //{
            //    rpta = null;
            //    throw ex;
            //}
            //finally
            //{
            //    //RfcDestinationManager.UnregisterDestinationConfiguration(dc);
            //}
            //return rpta;
            return null;
                
        }

        public List<InterlocutorReclamoBE> getInterXEmpresa(string P_Cliente, string P_Contac, string P_Respon, string P_Vkorg, string P_Vtweg, string P_AD)
        {
            //List<InterlocutorReclamoBE> rpta = null;
            //IRfcFunction function = null; RfcDestination dest = null;
            ////InMemoryDestinationConfiguration dc = new InMemoryDestinationConfiguration();
            
            //try
            //{
            //    //try
            //    //{
            //    //    RfcDestinationManager.RegisterDestinationConfiguration(dc);
            //    //}
            //    //catch { }
            //    //RfcDestination dest = RfcDestinationManager.GetDestination(this._connId);

            //    dest = DALC.getDestination();
            //    function = dest.Repository.CreateFunction("ZWEB_BUSCA_INTERLOCUTOR");
            //    function.SetValue("P_CLIENTE", P_Cliente);
            //    function.SetValue("P_RESPON", P_Respon);
            //    function.SetValue("P_CONTAC", P_Contac);
            //    function.SetValue("P_VKORG", P_Vkorg);
            //    function.SetValue("P_VTWEG", P_Vtweg);
            //    function.SetValue("P_AD", P_AD);
            //    function.Invoke(dest);

            //    IRfcTable T_INTERLOCUTORES = function.GetTable("T_INTERLOCUTORES");
            //    rpta = new List<InterlocutorReclamoBE>();
            //    string nif = string.Empty;
            //    foreach (IRfcStructure z in T_INTERLOCUTORES)
            //    {
            //        InterlocutorReclamoBE i = new InterlocutorReclamoBE();
            //        i.PARVW = z["PARVW"].GetString();
            //        i.POSNR = "000000";
            //        i.Calle = z["STREET"].GetString();
            //        i.NOMBRE = z["NOMBRE"].GetString();
            //        i.Direccion = z["STREET"].GetString();
            //        i.Ciudad = z["CITY"].GetString();
            //        i.CodPostal = z["POSTL_CODE"].GetString();
            //        i.ADRNR = z["ADRNR"].GetString();
            //        i.Telefono = z["TELEPHONE"].GetString();
            //        i.Mail = z["E_MAIL"].GetString();
            //        if (z["PARVW"].GetString().Equals("AG"))
            //        {
            //            if (P_Cliente.Trim('0').Equals(z["KUNNR"].GetString().Trim('0')))
            //            {
            //                i.KUNNR = z["KUNNR"].GetString().PadLeft(10, '0');
            //                i.EsVentual = false;
            //            }
            //            else if (z["KUNNR"].GetString().Trim().Equals("X"))
            //            {
            //                i.KUNNR = z["STCD1"].GetString().PadLeft(10, '0');
            //                i.EsVentual = true;
            //            }
            //        }
            //        if (z["PARVW"].GetString().Equals("WE"))
            //        {
            //            i.KUNNR = z["KUNNR"].GetString().PadLeft(10, '0');
            //            nif = z["STCD1"].GetString();
            //        }
            //        else if (z["PARVW"].GetString().Equals("AP"))
            //        {
            //            i.PARNR = z["KUNNR"].GetString().PadLeft(10, '0');
            //            i.NIF = z["STCD1"].GetString();
            //        }
            //        else if (z["PARVW"].GetString().Equals("VE") || z["PARVW"].GetString().Equals("ZM"))
            //        {
            //            i.PERNR = z["KUNNR"].GetString().PadLeft(8, '0');
            //        }                       

            //        rpta.Add(i);
            //    }
            //    if (rpta.Find(X => X.PARVW.Equals("AG")) != null)
            //    {
            //        rpta.Find(X => X.PARVW.Equals("AG")).NIF = nif;
            //    }
            //}
            //catch (Exception ex)
            //{
            //    rpta = null;
            //    throw ex;
            //}
            //finally
            //{
            //    //RfcDestinationManager.UnregisterDestinationConfiguration(dc);
            //}
            //return rpta;
            return null;
        }

        public List<ReporteReclamoBE> getReporteReclamo(string P_NREC, string P_PEDV, 
            string P_KUNNR, string P_NCLIE, string P_MATNR, DateTime P_FECINI, DateTime P_FECFIN, 
            string P_USUARIO, DateTime P_FECINI_CON_I, DateTime P_FECINI_CON_F, DateTime P_FECFIN_CON_I,
            DateTime P_FECFIN_CON_F, string ESTADO)
        {
            ////variables            
            //List<ReporteReclamoBE> rpta = new List<ReporteReclamoBE>();
            //IRfcFunction function = null; RfcDestination dest = null;
            //InMemoryDestinationConfiguration dc = new InMemoryDestinationConfiguration();

            //P_KUNNR = P_KUNNR.Equals("") ? "*" : P_KUNNR;
            //P_MATNR = P_MATNR.Equals("") ? "*" : P_MATNR;
            //P_NCLIE = P_NCLIE.Equals("") ? "*" : "*" + P_NCLIE + "*";
            //P_NREC = P_NREC.Equals("") ? "*" : P_NREC.PadLeft(10, '0');
            //P_PEDV = P_PEDV.Equals("") ? "*" : P_PEDV.PadLeft(10, '0');
            //P_USUARIO = P_USUARIO.Equals("") ? "*" : P_USUARIO;

            //try
            //{
            //    //try
            //    //{
            //    //    RfcDestinationManager.RegisterDestinationConfiguration(dc);
            //    //}
            //    //catch { }
            //    //RfcDestination dest = RfcDestinationManager.GetDestination(this._connId);

            //    dest = DALC.getDestination();
            //    function = dest.Repository.CreateFunction("ZWEB_BUSCA_RECLAMOS");
            //    function.SetValue("P_NREC", P_NREC);
            //    function.SetValue("P_PEDV", P_PEDV);
            //    function.SetValue("P_KUNNR", P_KUNNR);
            //    function.SetValue("P_NCLIE", P_NCLIE);
            //    function.SetValue("P_MATNR", P_MATNR);
            //    function.SetValue("P_FECINI", P_FECINI.Equals(DateTime.Parse("01/01/1900")) ? string.Empty : ParametroDALC.dateNetToSap(P_FECINI));
            //    function.SetValue("P_FECFIN", P_FECFIN.Equals(DateTime.Parse("01/01/1900")) ? string.Empty : ParametroDALC.dateNetToSap(P_FECFIN));
            //    function.SetValue("P_USUARIO", P_USUARIO);
            //    function.SetValue("P_FECINI_CON_I", P_FECINI_CON_I.Equals(DateTime.Parse("01/01/1900")) ? string.Empty : ParametroDALC.dateNetToSap(P_FECINI_CON_I));
            //    function.SetValue("P_FECINI_CON_F", P_FECINI_CON_F.Equals(DateTime.Parse("01/01/1900")) ? string.Empty : ParametroDALC.dateNetToSap(P_FECINI_CON_F));
            //    function.SetValue("P_FECFIN_CON_I", P_FECFIN_CON_I.Equals(DateTime.Parse("01/01/1900")) ? string.Empty : ParametroDALC.dateNetToSap(P_FECFIN_CON_I));
            //    function.SetValue("P_FECFIN_CON_F", P_FECFIN_CON_F.Equals(DateTime.Parse("01/01/1900")) ? string.Empty : ParametroDALC.dateNetToSap(P_FECFIN_CON_F));

            //    function.Invoke(dest);

            //    IRfcTable T_LISTA_RECLAMOS = function.GetTable("T_LISTA_RECLAMOS");

            //    foreach (IRfcStructure item in T_LISTA_RECLAMOS)
            //    {
            //        ReporteReclamoBE r = new ReporteReclamoBE();
            //        r.VBELN = item["VBELN"].GetString();
            //        r.KTABG = Convert.ToDateTime(item["KTABG"].GetString()).ToShortDateString();
            //        r.KUNNR = item["KUNNR"].GetString();
            //        r.NAME1 = item["NAME1"].GetString();
            //        r.MATNR = item["MATNR"].GetString().Trim('0');
            //        r.MAKTX = item["MAKTX"].GetString().Trim('0');
            //        r.VGBEL = item["VGBEL"].GetString();
            //        r.STAT = item["STAT"].GetString();

            //        rpta.Add(r);
            //    }
            //    P_MATNR = P_MATNR.Trim('0');
            //    if (!P_MATNR.Equals("*"))
            //    {
            //        rpta.RemoveAll(x => !P_MATNR.Equals(x.MATNR.Trim('0').Trim()));
            //    }
            //    if (ESTADO != "")
            //    {
            //        rpta.RemoveAll(x => x.STAT != ESTADO);
            //    }
            //}
            //catch (Exception ex)
            //{
            //    rpta = null;
            //    throw ex;
            //}
            //finally
            //{
            //    //RfcDestinationManager.UnregisterDestinationConfiguration(dc);
            //}
            //return rpta;
            return null;
        }

        public List<GenericBE> getValidaData(string pPedido, string pMat1, string pMat2, string pRef)
        {
            //List<GenericBE> rpta = null;

            //IRfcFunction function = null; RfcDestination dest = null;
            ////InMemoryDestinationConfiguration dc = new InMemoryDestinationConfiguration();

            //try
            //{
            //    //try
            //    //{
            //    //    RfcDestinationManager.RegisterDestinationConfiguration(dc);
            //    //}
            //    //catch { }
            //    //RfcDestination dest = RfcDestinationManager.GetDestination(this._connId);
            //    dest = DALC.getDestination();
            //    function = dest.Repository.CreateFunction("ZWEB_VALIDA_DATOS_RECLAMO");
            //    function.SetValue("P_MATNR1", pMat1);
            //    function.SetValue("P_MATNR2", pMat2);
            //    function.SetValue("P_REC_REF", pRef);
            //    function.SetValue("P_PEDIDO", pPedido);
            //    function.Invoke(dest);

            //    IRfcTable T_RETURN = function.GetTable("T_RETURN");
            //    rpta = new List<GenericBE>();
            //    foreach (IRfcStructure r in T_RETURN)
            //    {
            //        GenericBE g = new GenericBE();
            //        g.Descripcion = "Invalido";
            //        g.Codigo = r["TYPE"].GetString();
            //        if (r["TYPE"].GetString().Equals("p") && !r["MESSAGE"].GetString().Equals(""))
            //        {
            //            g.Descripcion = "Valido";
            //        }
            //        else if (r["TYPE"].GetString().Equals("1") && !r["MESSAGE"].GetString().Equals(""))
            //        {
            //            g.Codigo = "m" + r["TYPE"].GetString();
            //            g.Descripcion = "Valido";
            //        }
            //        else if (r["TYPE"].GetString().Equals("2") && !r["MESSAGE"].GetString().Equals(""))
            //        {
            //            g.Codigo = "m" + r["TYPE"].GetString();
            //            g.Descripcion = "Valido";
            //        }
            //        rpta.Add(g);
            //    }
            //    if (rpta.Find(x => x.Codigo.Equals("m1")) == null)
            //    {
            //        GenericBE g1 = new GenericBE();
            //        g1.Codigo = "m1";
            //        g1.Descripcion = "Invalido";
            //        rpta.Add(g1);
            //    }
            //    if (rpta.Find(x => x.Codigo.Equals("m2")) == null)
            //    {
            //        GenericBE g2 = new GenericBE();
            //        g2.Codigo = "m2";
            //        g2.Descripcion = "Invalido";
            //        rpta.Add(g2);
            //    }
            //}
            //catch (Exception ex)
            //{
            //    rpta = null;
            //    throw ex;
            //}
            //finally
            //{
            //    //RfcDestinationManager.UnregisterDestinationConfiguration(dc);
            //}
            //return rpta;
            return null;
        }

        public DocReclamoBE getReclamo(string pNroReclamo)
        {
            return null;
        }

        public GenericBE set_ModificarReclamo(DocReclamoBE pObjReclamo)
        {
            //GenericBE rpta = null;
            //IRfcFunction function = null; RfcDestination dest = null;
            ////InMemoryDestinationConfiguration dc = new InMemoryDestinationConfiguration();
            //try
            //{
            //    //try
            //    //{
            //    //    RfcDestinationManager.RegisterDestinationConfiguration(dc);
            //    //}
            //    //catch { }
            //    //RfcDestination dest = RfcDestinationManager.GetDestination(this._connId);
            //    dest = DALC.getDestination();
            //    rpta = new GenericBE();
            //    string rec = string.Empty;

            //    RfcStructureMetadata smVBKAVB = dest.Repository.GetStructureMetadata("VBKAVB"); 
            //    IRfcTable t_VBKAVB = smVBKAVB.CreateTable();
            //    //contactos
            //    if (!(pObjReclamo.Contactos == null))
            //    {                    
            //        IRfcStructure itmVBKAVB = smVBKAVB.CreateStructure();

            //        rec = pObjReclamo.Contactos.VBELN.PadLeft(10, '0');
            //        itmVBKAVB.SetValue("VBELN", pObjReclamo.Contactos.VBELN == null ? "" : pObjReclamo.Contactos.VBELN);
            //        itmVBKAVB.SetValue("ERDAT", ParametroDALC.dateNetToSap(pObjReclamo.Contactos.ERDAT));
            //        itmVBKAVB.SetValue("ERZET", pObjReclamo.Contactos.ERZET == null ? "" : pObjReclamo.Contactos.ERZET);
            //        itmVBKAVB.SetValue("ERNAM", pObjReclamo.Contactos.ERNAM == null ? "" : pObjReclamo.Contactos.ERNAM);
            //        itmVBKAVB.SetValue("AEDAT", ParametroDALC.dateNetToSap(pObjReclamo.Contactos.AEDAT));
            //        itmVBKAVB.SetValue("AEZET", pObjReclamo.Contactos.AEZET == null ? "" : pObjReclamo.Contactos.AEZET);
            //        itmVBKAVB.SetValue("AENAM", pObjReclamo.Contactos.AENAM == null ? "" : pObjReclamo.Contactos.AENAM);
            //        itmVBKAVB.SetValue("KTAAR", pObjReclamo.Contactos.KTAAR == null ? "" : pObjReclamo.Contactos.KTAAR);
            //        itmVBKAVB.SetValue("VBTYP", pObjReclamo.Contactos.VBTYP == null ? "" : pObjReclamo.Contactos.VBTYP);
            //        itmVBKAVB.SetValue("TRVOG", pObjReclamo.Contactos.TRVOG == null ? "" : pObjReclamo.Contactos.TRVOG);
            //        itmVBKAVB.SetValue("VKORG", pObjReclamo.Contactos.VKORG == null ? "" : pObjReclamo.Contactos.VKORG);
            //        itmVBKAVB.SetValue("VTWEG", pObjReclamo.Contactos.VTWEG == null ? "" : pObjReclamo.Contactos.VTWEG);
            //        itmVBKAVB.SetValue("SPART", pObjReclamo.Contactos.SPART == null ? "" : pObjReclamo.Contactos.SPART);
            //        itmVBKAVB.SetValue("VKBUR", pObjReclamo.Contactos.VKBUR == null ? "" : pObjReclamo.Contactos.VKBUR);
            //        itmVBKAVB.SetValue("VKGRP", pObjReclamo.Contactos.VKGRP == null ? "" : pObjReclamo.Contactos.VKGRP);
            //        itmVBKAVB.SetValue("KTABG", ParametroDALC.dateNetToSap(pObjReclamo.Contactos.KTABG));
            //        itmVBKAVB.SetValue("KTAEN", ParametroDALC.dateNetToSap(pObjReclamo.Contactos.KTAEN));
            //        itmVBKAVB.SetValue("KTABT", pObjReclamo.Contactos.KTABT == null ? "" : pObjReclamo.Contactos.KTABT);
            //        itmVBKAVB.SetValue("KTAET", pObjReclamo.Contactos.KTAET == null ? "" : pObjReclamo.Contactos.KTAET);
            //        itmVBKAVB.SetValue("KTAGR", pObjReclamo.Contactos.KTAGR == null ? "" : pObjReclamo.Contactos.KTAGR);
            //        itmVBKAVB.SetValue("KTAST", pObjReclamo.Contactos.KTAST == null ? "" : pObjReclamo.Contactos.KTAST);
            //        itmVBKAVB.SetValue("KTAER", pObjReclamo.Contactos.KTAER == null ? "" : pObjReclamo.Contactos.KTAER);
            //        itmVBKAVB.SetValue("KTAFK", pObjReclamo.Contactos.KTAFK == null ? "" : pObjReclamo.Contactos.KTAFK);
            //        itmVBKAVB.SetValue("KTEXT", pObjReclamo.Contactos.KTEXT == null ? "" : pObjReclamo.Contactos.KTEXT);
            //        itmVBKAVB.SetValue("KUNNR", pObjReclamo.Contactos.KUNNR == null ? "" : pObjReclamo.Contactos.KUNNR);
            //        itmVBKAVB.SetValue("GBSTK", pObjReclamo.Contactos.GBSTK == null ? "" : pObjReclamo.Contactos.GBSTK);
            //        itmVBKAVB.SetValue("PARVW", pObjReclamo.Contactos.PARVW == null ? "" : pObjReclamo.Contactos.PARVW);
            //        itmVBKAVB.SetValue("DIRECTION", pObjReclamo.Contactos.DIRECTION == null ? "" : pObjReclamo.Contactos.DIRECTION);
            //        itmVBKAVB.SetValue("KTEXT_MC", pObjReclamo.Contactos.KTEXT_MC == null ? "" : pObjReclamo.Contactos.KTEXT_MC);
            //        itmVBKAVB.SetValue("KTEXT_MC_LANGU", pObjReclamo.Contactos.KTEXT_MC_LANGU == null ? "" : pObjReclamo.Contactos.KTEXT_MC_LANGU);
            //        itmVBKAVB.SetValue("VGBEL", pObjReclamo.Contactos.VGBEL.PadLeft(10, '0'));
            //        itmVBKAVB.SetValue("UPDKZ", "U");
            //        itmVBKAVB.SetValue("KTAEB", pObjReclamo.Contactos.KTAEB == null ? "" : pObjReclamo.Contactos.KTAEB);
            //        t_VBKAVB.Append(itmVBKAVB);
            //    }

            //    RfcStructureMetadata smVBUKVB = dest.Repository.GetStructureMetadata("VBUKVB");
            //    IRfcTable t_VBUKVB = smVBUKVB.CreateTable();
            //    //Doc Comercial
            //    if (!(pObjReclamo.DocComercial == null))
            //    {                    
            //        IRfcStructure itmVBUKVB = smVBUKVB.CreateStructure();
            //        itmVBUKVB.SetValue("GBSTK", pObjReclamo.DocComercial.GBSTK);
            //        itmVBUKVB.SetValue("UVALL", pObjReclamo.DocComercial.UVALL);
            //        itmVBUKVB.SetValue("VBTYP", pObjReclamo.DocComercial.VBTYP);
            //        itmVBUKVB.SetValue("VBOBJ", pObjReclamo.DocComercial.VBOBJ);
            //        itmVBUKVB.SetValue("UPDKZ", "U");
            //        itmVBUKVB.SetValue("VBELN", rec);
            //        t_VBUKVB.Append(itmVBUKVB);
            //    }

            //    RfcStructureMetadata smRECLAMOS = dest.Repository.GetStructureMetadata("ZWEB_RECLAMOS");   
            //    IRfcTable t_RECLAMOS = smRECLAMOS.CreateTable();
            //    //ZWEB_Reclamo
            //    if (!(pObjReclamo.Z_Reclamo == null))
            //    {
                    
            //        IRfcStructure itmRECLAMOS = smRECLAMOS.CreateStructure();
            //        itmRECLAMOS.SetValue("MATNR", pObjReclamo.Z_Reclamo.MATNR);
            //        itmRECLAMOS.SetValue("MATN2", pObjReclamo.Z_Reclamo.MATNR2);
            //        itmRECLAMOS.SetValue("RECLA", pObjReclamo.Z_Reclamo.RECLA);
            //        itmRECLAMOS.SetValue("STAT1", pObjReclamo.Z_Reclamo.STAT1);
            //        itmRECLAMOS.SetValue("USER1", pObjReclamo.Z_Reclamo.USER1);
            //        itmRECLAMOS.SetValue("CMM1", pObjReclamo.Z_Reclamo.CMM1);
            //        itmRECLAMOS.SetValue("STAT2", pObjReclamo.Z_Reclamo.STAT2);
            //        itmRECLAMOS.SetValue("USER2", pObjReclamo.Z_Reclamo.USER2);
            //        itmRECLAMOS.SetValue("CMM2", pObjReclamo.Z_Reclamo.CMM2);
            //        itmRECLAMOS.SetValue("STAT3", pObjReclamo.Z_Reclamo.STAT3);
            //        itmRECLAMOS.SetValue("USER3", pObjReclamo.Z_Reclamo.USER3);
            //        itmRECLAMOS.SetValue("CMM3", pObjReclamo.Z_Reclamo.CMM3);
            //        itmRECLAMOS.SetValue("VBELN", rec);
            //        itmRECLAMOS.SetValue("FCHA1", ParametroDALC.dateNetToSap(pObjReclamo.Z_Reclamo.FCHA1));
            //        itmRECLAMOS.SetValue("FCHA2", ParametroDALC.dateNetToSap(pObjReclamo.Z_Reclamo.FCHA2));
            //        itmRECLAMOS.SetValue("FCHA3", ParametroDALC.dateNetToSap(pObjReclamo.Z_Reclamo.FCHA3));
            //        //se adiciono el stat4 con código 9 - rhuapaya
            //        itmRECLAMOS.SetValue("STAT4", pObjReclamo.Z_Reclamo.STAT4);
            //        itmRECLAMOS.SetValue("USER4", pObjReclamo.Z_Reclamo.USER4);
            //        itmRECLAMOS.SetValue("CMM4", pObjReclamo.Z_Reclamo.CMM4);
            //        itmRECLAMOS.SetValue("FCHA4", ParametroDALC.dateNetToSap(pObjReclamo.Z_Reclamo.FCHA4));
            //        //***************************************************************
            //        itmRECLAMOS.SetValue("CPOSTAL", pObjReclamo.Z_Reclamo.CPOSTAL);
            //        itmRECLAMOS.SetValue("DIRECCION", pObjReclamo.Z_Reclamo.DIRECCION);
            //        itmRECLAMOS.SetValue("NIF", pObjReclamo.Z_Reclamo.NIF);
            //        itmRECLAMOS.SetValue("PCONTACTO", pObjReclamo.Z_Reclamo.PCONTACTO);
            //        itmRECLAMOS.SetValue("TELEFONO", pObjReclamo.Z_Reclamo.TELEFONO);

            //        t_RECLAMOS.Append(itmRECLAMOS);
            //    }
            //    RfcStructureMetadata smVBPAVB = dest.Repository.GetStructureMetadata("VBPAVB");   
            //    IRfcTable t_VBPAVB = smVBPAVB.CreateTable();
            //    //Interlocutor 
            //    foreach (InterlocutorReclamoBE i in pObjReclamo.Interlocutor)
            //    {
                    
            //        IRfcStructure itmVBPAVB = smVBPAVB.CreateStructure();
            //        itmVBPAVB.SetValue("POSNR", i.POSNR);
            //        itmVBPAVB.SetValue("PARVW", i.PARVW);
            //        itmVBPAVB.SetValue("KUNNR", i.KUNNR);
            //        itmVBPAVB.SetValue("PERNR", i.PERNR);
            //        itmVBPAVB.SetValue("PARNR", i.PARNR);
            //        itmVBPAVB.SetValue("ADRNR", i.ADRNR);
            //        itmVBPAVB.SetValue("VBELN", rec);
            //        itmVBPAVB.SetValue("UPDKZ", "U");
            //        itmVBPAVB.SetValue("TELFX", i.Telefono);
            //        itmVBPAVB.SetValue("ABLAD", i.Mail);
            //        itmVBPAVB.SetValue("STCEG", i.NIF);

            //        t_VBPAVB.Append(itmVBPAVB);
            //    }
            //    //verifico que el largo de los textos no sea mayor a 90 caracteres.
            //    ////int posSpace = 0;
            //    ////string texto = "";
            //    ////int contInicio = 0;
            //    ////foreach (TextoBE tb in pObjReclamo.Texto)
            //    ////{
            //    ////    posSpace = 0;
            //    ////    contInicio = 0;
            //    ////    texto = "";
            //    ////    posSpace = (tb.Descripcion.Length / 80);
            //    ////    if (posSpace * 80 <= tb.Descripcion.Length) { posSpace++; }
            //    ////    posSpace--;
            //    ////    if (tb.Descripcion.Length > 130)
            //    ////    {
            //    ////        for (int cont = 1; cont <= posSpace; cont++)
            //    ////        {
            //    ////            if (!tb.Descripcion.Substring(cont * 80, 1).Equals("\r\n") &&
            //    ////                !tb.Descripcion.Substring(cont * 79, 1).Equals("\r\n"))
            //    ////            {
            //    ////                tb.Descripcion = tb.Descripcion.Insert(cont * 80, "\r\n");
            //    ////            }

            //    ////        }

            //    ////    }
            //    ////}

            //    RfcStructureMetadata smTEXTOS_RECLAMO = dest.Repository.GetStructureMetadata("ZWEB_TEXTOS_RECLAMO");
            //    IRfcTable t_smTEXTOS_RECLAMO = smTEXTOS_RECLAMO.CreateTable();
            //    foreach (TextoBE tb in pObjReclamo.Texto)
            //    {
            //        int k = tb.Descripcion.Length;
            //        tb.Descripcion = tb.Descripcion.Trim('|');
            //        tb.Descripcion = tb.Descripcion.Replace(Environment.NewLine, "|") + "|";
            //        if (tb.Descripcion.Length > 0)
            //        {
            //            if (tb.Descripcion.IndexOf("|", 0) > 0)
            //            {
            //                for (int i = 0, j = 0; tb.Descripcion.IndexOf("|", 0) >= 0; )
            //                {
            //                    //ZWEB_TEXTOS_RECLAMO t = new ZWEB_TEXTOS_RECLAMO();                                
            //                    IRfcStructure itmsmTEXTOS_RECLAMO = smTEXTOS_RECLAMO.CreateStructure();
            //                    i = tb.Descripcion.IndexOf("|", j);
            //                    itmsmTEXTOS_RECLAMO.SetValue("FID", tb.CodTexto);
            //                    itmsmTEXTOS_RECLAMO.SetValue("TDLINE", tb.Descripcion.Substring(0, i));
            //                    tb.Descripcion = tb.Descripcion.Substring(i + 1);
            //                    t_smTEXTOS_RECLAMO.Append(itmsmTEXTOS_RECLAMO);
            //                    i++;
            //                }
            //            }   
            //        }   
            //    }

            //    RfcStructureMetadata smReturn = dest.Repository.GetStructureMetadata("BAPIRET2");
            //    IRfcTable t_smReturn = smReturn.CreateTable();

            //    function = dest.Repository.CreateFunction("ZWEB_MODIFICA_RECLAMO");
            //    function.SetValue("T_FXVBKA", t_VBKAVB);
            //    function.SetValue("T_FXVBPA", t_VBPAVB);
            //    function.SetValue("T_FXVBUK", t_VBUKVB);
            //    function.SetValue("T_Z_RECLAMOS", t_RECLAMOS);
            //    function.SetValue("T_TEXTOS", t_smTEXTOS_RECLAMO);
            //    function.Invoke(dest);

            //    IRfcTable T_RETURN = function.GetTable("T_RETURN");

            //    if (T_RETURN.Count == 0)
            //    {
            //        rpta.Codigo = "S";
            //        rpta.Descripcion = "Reclamo " + pObjReclamo.Z_Reclamo.VBELN + " modificado.";
            //    }
            //    else
            //    {
            //        foreach (IRfcStructure item in T_RETURN)
            //        {
            //            rpta.Codigo = item.GetString("TYPE");
            //            rpta.Descripcion = item.GetString("MESSAGE");
            //            break;
            //        }                    
            //    }                
            //}
            //catch (Exception e)
            //{
            //    rpta = new GenericBE();
            //    rpta.Codigo = "E";
            //    rpta.Descripcion = "Error ABAP: " + e.Message;
            //}
            //return rpta;
            return null;
        }

        public DocReclamoBE getReclamoImpr(string pNroReclamo)
        {
            //DocReclamoBE rpta = null;
            //IRfcFunction function = null; RfcDestination dest = null;
            ////InMemoryDestinationConfiguration dc = new InMemoryDestinationConfiguration();
            //try
            //{
            //    //try
            //    //{
            //    //    RfcDestinationManager.RegisterDestinationConfiguration(dc);
            //    //}
            //    //catch { }
            //    //RfcDestination dest = RfcDestinationManager.GetDestination(this._connId);
            //    dest = DALC.getDestination();
            //    function = dest.Repository.CreateFunction("ZWEB_VER_RECLAMO");
            //    function.SetValue("P_VBELN", pNroReclamo.PadLeft(10, '0'));
            //    function.Invoke(dest);

            //    IRfcTable T_VBKA = function.GetTable("T_VBKA");
            //    rpta = new DocReclamoBE();
            //    //contactos
            //    foreach (IRfcStructure z in T_VBKA)
            //    {
            //        rpta.Contactos.VBELN = z.GetString("VBELN");
            //        rpta.Contactos.ERDAT = Convert.ToDateTime(z.GetString("ERDAT"));
            //        rpta.Contactos.ERZET = z.GetString("ERZET").Substring(0, 2) + ":" + z.GetString("ERZET").Substring(2, 2) + ":" + z.GetString("ERZET").Substring(4, 2);
            //        rpta.Contactos.ERNAM = z.GetString("ERNAM");
            //        rpta.Contactos.AEDAT = Convert.ToDateTime(z.GetString("AEDAT"));
            //        rpta.Contactos.AEZET = z.GetString("AEZET").Substring(0, 2) + ":" + z.GetString("AEZET").Substring(2, 2) + ":" + z.GetString("AEZET").Substring(4, 2);
            //        rpta.Contactos.AENAM = z.GetString("AENAM");
            //        rpta.Contactos.KTAAR = z.GetString("KTAAR");
            //        rpta.Contactos.KTARA = z.GetString("KTARA");                    
            //        rpta.Contactos.VBTYP = z.GetString("VBTYP");
            //        rpta.Contactos.TRVOG = z.GetString("TRVOG");
            //        rpta.Contactos.VKORG = z.GetString("VKORG");
            //        rpta.Contactos.VTWEG = z.GetString("VTWEG");
            //        rpta.Contactos.SPART = z.GetString("SPART");
            //        rpta.Contactos.VKBUR = z.GetString("VKBUR");
            //        rpta.Contactos.VKGRP = z.GetString("VKGRP");
            //        rpta.Contactos.KTABG = Convert.ToDateTime(z.GetString("KTABG"));
            //        rpta.Contactos.KTAEN = Convert.ToDateTime(z.GetString("KTAEN"));
            //        rpta.Contactos.KTABT = z.GetString("KTABT").Substring(0, 2) + ":" + z.GetString("KTABT").Substring(2, 2) + ":" + z.GetString("KTABT").Substring(4, 2);
            //        rpta.Contactos.KTAET = z.GetString("KTAET").Substring(0, 2) + ":" + z.GetString("KTAET").Substring(2, 2) + ":" + z.GetString("KTAET").Substring(4, 2);
            //        rpta.Contactos.KTAGR = z.GetString("KTAGR");
            //        rpta.Contactos.KTAST = z.GetString("KTAST");
            //        rpta.Contactos.KTAER = z.GetString("KTAER");
            //        rpta.Contactos.KTAFK = z.GetString("KTAFK");
            //        rpta.Contactos.KTEXT = z.GetString("KTEXT");
            //        rpta.Contactos.KUNNR = z.GetString("KUNNR").Trim('0');
            //        rpta.Contactos.GBSTK = z.GetString("GBSTK");
            //        rpta.Contactos.PARVW = z.GetString("PARVW");
            //        rpta.Contactos.DIRECTION = z.GetString("DIRECTION");
            //        rpta.Contactos.KTEXT_MC = z.GetString("KTEXT_MC");
            //        rpta.Contactos.KTEXT_MC_LANGU = z.GetString("KTEXT_MC_LANGU");
            //        rpta.Contactos.VGBEL = z.GetString("VGBEL").Trim('0');
            //        rpta.Contactos.KTAEB = z.GetString("KTAEB");
            //        break;
            //    }
            //    //Doc Comercial
            //    IRfcTable T_VBUK = function.GetTable("T_VBUK");
            //    foreach (IRfcStructure item in T_VBUK)
            //    {
            //        rpta.DocComercial.GBSTK = item.GetString("GBSTK");
            //        rpta.DocComercial.UVALL = item.GetString("UVALL");
            //        rpta.DocComercial.VBTYP = item.GetString("VBTYP");
            //        rpta.DocComercial.VBOBJ = item.GetString("VBOBJ");
            //        rpta.DocComercial.VBELN = item.GetString("VBELN").Trim('0');
            //        break;
            //    }
            //    //ZWEB_Reclamo
            //    List<GenericBE> lg = null;
            //    IRfcTable T_Z_RECLAMO = function.GetTable("T_Z_RECLAMO");
            //    foreach (IRfcStructure item in T_Z_RECLAMO)
            //    {
            //        rpta.Z_Reclamo.MATNR = item.GetString("MATNR").Trim('0');
            //        rpta.Z_Reclamo.MATNR2 = item.GetString("MATN2").Trim('0');
            //        rpta.Z_Reclamo.RECLA = item.GetString("RECLA").Trim('0');
            //        rpta.Z_Reclamo.STAT1 = item.GetString("STAT1");
            //        rpta.Z_Reclamo.USER1 = item.GetString("USER1");
            //        rpta.Z_Reclamo.CMM1 = item.GetString("CMM1");
            //        rpta.Z_Reclamo.STAT2 = item.GetString("STAT2");
            //        rpta.Z_Reclamo.USER2 = item.GetString("USER2");
            //        rpta.Z_Reclamo.CMM2 = item.GetString("CMM2");
            //        rpta.Z_Reclamo.STAT3 = item.GetString("STAT3");
            //        rpta.Z_Reclamo.USER3 = item.GetString("USER3");
            //        rpta.Z_Reclamo.CMM3 = item.GetString("CMM3");
            //        rpta.Z_Reclamo.VBELN = item.GetString("VBELN").Trim('0');
            //        rpta.Z_Reclamo.FCHA1 = Convert.ToDateTime(item.GetString("FCHA1"));
            //        rpta.Z_Reclamo.FCHA2 = Convert.ToDateTime(item.GetString("FCHA2"));
            //        rpta.Z_Reclamo.FCHA3 = Convert.ToDateTime(item.GetString("FCHA3"));
            //        //se adicionó el estado 4 con codigo 9 -- rhuapaya
            //        rpta.Z_Reclamo.STAT4 = item.GetString("STAT4");
            //        rpta.Z_Reclamo.USER4 = item.GetString("USER4");
            //        rpta.Z_Reclamo.CMM4 = item.GetString("CMM4");
            //        rpta.Z_Reclamo.FCHA4 = Convert.ToDateTime(item.GetString("FCHA4"));
            //        //****************************************************************************
            //        rpta.Z_Reclamo.CPOSTAL = item.GetString("CPOSTAL");
            //        rpta.Z_Reclamo.PCONTACTO = item.GetString("PCONTACTO");
            //        rpta.Z_Reclamo.NIF = item.GetString("NIF");
            //        rpta.Z_Reclamo.TELEFONO = item.GetString("TELEFONO");
            //        rpta.Z_Reclamo.DIRECCION = item.GetString("DIRECCION");
            //        break;
            //    }
            //    if ((T_Z_RECLAMO.Count > 0) && (T_VBKA.Count > 0))
            //    {
            //        lg = getDatosImpr(rpta.Contactos.VGBEL, T_Z_RECLAMO[0].GetString("MATNR"), T_Z_RECLAMO[0].GetString("MATN2"), string.Empty);

            //        if (lg.Find(x => x.Codigo.Equals("m1")) != null)
            //            rpta.Z_Reclamo.NMATNR = lg.Find(x => x.Codigo.Equals("m1")).Descripcion;

            //        if (lg.Find(x => x.Codigo.Equals("m2")) != null)
            //            rpta.Z_Reclamo.NMATNR2 = lg.Find(x => x.Codigo.Equals("m2")).Descripcion;

            //        if (lg.Find(x => x.Codigo.Equals("p")) != null)
            //            rpta.Contactos.KTAEN = ParametroDALC.dateSapToNet(lg.Find(x => x.Codigo.Equals("p")).Descripcion);
            //    }
            //    //Interlocutor
            //    string ap = string.Empty;
            //    string ag = string.Empty;
            //    bool es = false;
            //    IRfcTable T_VBPA = function.GetTable("T_VBPA");

            //    foreach (IRfcStructure i in T_VBPA)
            //    {
            //        if (i.GetString("PARVW").Equals("AG") && !i.GetString("PARVW").Equals(""))
            //        {
            //            es = ReclamoDALC.Instance(this._connId).getInterXEmpresa(i.GetString("KUNNR"), string.Empty, string.Empty, string.Empty, string.Empty, string.Empty).Find(x => x.PARVW.Equals("AG")).EsVentual;
            //            if (es)
            //                ag = i.GetString("ADRNR");
            //            else
            //                ag = i.GetString("KUNNR");
            //        }
            //        else if (i.GetString("PARVW").Equals("AP") && !i.GetString("PARVW").Equals(""))
            //        {
            //            ap = i.GetString("PARNR");
            //        }   
            //    }
            //    List<InterlocutorReclamoBE> lst = null;
            //    if (es)
            //    {
            //        lst = ReclamoDALC.Instance(this._connId).getInterXEmpresa(ag, string.Empty, string.Empty, string.Empty, string.Empty, "X");
            //    }
            //    else
            //    {
            //        lst = ReclamoDALC.Instance(this._connId).getInterXEmpresa(ag, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty);
            //    }
                
            //    foreach (IRfcStructure i in T_VBPA)
            //    {
            //        InterlocutorReclamoBE it = new InterlocutorReclamoBE();
            //        InterlocutorReclamoBE inter = null;
            //        it.POSNR = i.GetString("POSNR");
            //        it.PARVW = i.GetString("PARVW");
            //        it.KUNNR = i.GetString("KUNNR");
            //        it.PERNR = i.GetString("PERNR");
            //        it.PARNR = i.GetString("PARNR");
            //        it.ADRNR = i.GetString("ADRNR");
            //        it.VBELN = i.GetString("VBELN");
            //        if (i.GetString("PARVW").Equals("ZM"))
            //            it.Cargo = i.GetString("ABLAD").Equals("") ? (i.GetString("KNREF").Equals("") ? "" : i.GetString("KNREF")) : i.GetString("ABLAD");
            //        else if (i.GetString("PARVW").Equals("AG"))
            //            it.Mail = i.GetString("ABLAD");
            //        //otros datos impr
            //        inter = lst.Find(x => x.PARVW.Equals(i.GetString("PARVW")));
            //        if (inter != null)
            //        {
            //            it.Telefono = inter.Telefono == null ? "" : inter.Telefono;
            //            it.Direccion = inter.Direccion == null ? "" : inter.Direccion;
            //            it.NOMBRE = inter.NOMBRE == null ? "" : inter.NOMBRE;
            //            it.NIF = i.GetString("STCEG");
            //        }
            //        rpta.Interlocutor.Add(it);
            //    }

            //    IRfcTable T_TEXTOS = function.GetTable("T_TEXTOS");
            //    foreach (IRfcStructure tb in T_TEXTOS)
            //    {
            //        TextoBE t = new TextoBE();
            //        //string texto = string.Empty;
            //        //string puntoAparte = "." + Environment.NewLine;
            //        if (rpta.Texto.Find(x => x.CodTexto.Equals(tb.GetString("FID"))) != null)
            //        {
            //            t = rpta.Texto.Find(x => x.CodTexto.Equals(tb.GetString("FID")));
            //        }
            //        else
            //        {
            //            t.CodTexto = tb.GetString("FID");
            //        }
            //        if (!tb.GetString("TDLINE").Equals(""))
            //        {
            //            t.Descripcion += tb.GetString("TDLINE"); //"\r\n" + " "
            //            t.Descripcion = t.Descripcion.Trim();
            //            if (tb.GetString("TDLINE").Length < 79 && t.Descripcion.IndexOf(".", t.Descripcion.Length - 1) != -1)
            //            {
            //                t.Descripcion = t.Descripcion + Environment.NewLine;
            //            }
            //            if (rpta.Texto.Find(x => x.CodTexto.Equals(tb.GetString("FID"))) == null)
            //            {
            //                rpta.Texto.Add(t);
            //            }
            //        }
            //    }
            //    //IRfcTable T_VISITAS = function.GetTable("T_VISITAS");
            //    //foreach (IRfcStructure item in T_VISITAS)
            //    //{
            //    //    ZReclamoVisitasBE vi = new ZReclamoVisitasBE();
            //    //    vi.MANDT = item.GetString("Mandt");
            //    //    vi.VBELN = item.GetString("Vbeln");
            //    //    vi.KTAST = item.GetString("Ktast");
            //    //    vi.NROVIS = item.GetString("Nrovis");
            //    //    vi.FECHA = Convert.ToDateTime(item.GetString("Fecha"));
            //    //    vi.TIME = item.GetString("Hora").Substring(0, 2) + ":" + item.GetString("Hora").Substring(2, 2);
            //    //    vi.RESP = item.GetString("Resp");
            //    //    vi.COMENT = item.GetString("Coment");

            //    //    rpta.Z_ReclamoVisita.Add(vi);
            //    //}
            //    CombosReclamoBE mot = getCombosReclamo();
            //    GenericBE gen = mot.T_MOTIVO.Find(x => x.Codigo.Equals(rpta.Contactos.KTAGR));
            //    if (gen != null)
            //    {
            //        rpta.Contactos.KTAGR = gen.Descripcion;
            //    }
            //}
            //catch (Exception ex)
            //{
            //    rpta = null;
            //}
            //finally
            //{

            //}
            //return rpta;
            return null;
        }

        public List<ZReclamoVisitasBE> setVisitas(List<ZReclamoVisitasBE> lstVisitas)
        {
            //List<ZReclamoVisitasBE> lst = new List<ZReclamoVisitasBE>();
            //IRfcFunction function = null; RfcDestination dest = null;
            ////InMemoryDestinationConfiguration dc = new InMemoryDestinationConfiguration();

            //try
            //{
            //    //try
            //    //{
            //    //    RfcDestinationManager.RegisterDestinationConfiguration(dc);
            //    //}
            //    //catch { }
            //    //RfcDestination dest = RfcDestinationManager.GetDestination(this._connId);
            //    dest = DALC.getDestination();
            //    RfcStructureMetadata smVISITAS = dest.Repository.GetStructureMetadata("ZWEB_VISITAS");
            //    IRfcTable t_VISITAS = smVISITAS.CreateTable();
            //    foreach (ZReclamoVisitasBE item in lstVisitas)
            //    {
            //        IRfcStructure itmVISITAS = smVISITAS.CreateStructure();
            //        itmVISITAS.SetValue("NROVIS", item.NROVIS.PadLeft(10, '0'));
            //        itmVISITAS.SetValue("VBELN", item.VBELN);
            //        itmVISITAS.SetValue("KTAST", item.KTAST);
            //        itmVISITAS.SetValue("FECHA", ParametroDALC.dateNetToSap(item.FECHA));
            //        itmVISITAS.SetValue("HORA", item.TIME);
            //        itmVISITAS.SetValue("RESP", item.RESP);
            //        itmVISITAS.SetValue("COMENT", item.COMENT);

            //        t_VISITAS.Append(itmVISITAS);
            //    }

            //    function = dest.Repository.CreateFunction("ZWEB_GUARDAR_VISITAS");
            //    function.SetValue("T_VISITAS", t_VISITAS);
            //    function.Invoke(dest);

            //    IRfcTable T_VISITAS = function.GetTable("T_VISITAS");
            //    foreach (IRfcStructure item in T_VISITAS)
            //    {
            //        ZReclamoVisitasBE objVisitas = new ZReclamoVisitasBE();
            //        objVisitas.NROVIS = item.GetString("NROVIS");
            //        objVisitas.VBELN = item.GetString("VBELN");
            //        objVisitas.KTAST = item.GetString("KTAST");
            //        objVisitas.FECHA = ParametroDALC.dateSapToNet(item.GetString("FECHA"));
            //        objVisitas.TIME = item.GetString("HORA").Substring(0, 2) + ":" + item.GetString("HORA").Substring(2, 2);
            //        objVisitas.RESP = item.GetString("RESP");
            //        objVisitas.COMENT = item.GetString("COMENT");

            //        lst.Add(objVisitas);
            //    }
            //}
            //catch (Exception ex)
            //{
            //    throw ex;
            //}

            //return lst;
            return null;
        }

        #endregion

        public List<GenericBE> getDatosImpr(string pPedido, string pMat1, string pMat2, string pRef)
        {
            //List<GenericBE> rpta = null;
            //IRfcFunction function = null; RfcDestination dest = null;
            ////InMemoryDestinationConfiguration dc = new InMemoryDestinationConfiguration();
            
            //try
            //{
            //    //try
            //    //{
            //    //    RfcDestinationManager.RegisterDestinationConfiguration(dc);
            //    //}
            //    //catch { }
            //    //RfcDestination dest = RfcDestinationManager.GetDestination(this._connId);
            //    dest = DALC.getDestination();
            //    function = dest.Repository.CreateFunction("ZWEB_VALIDA_DATOS_RECLAMO");
            //    function.SetValue("P_MATNR1", pMat1.PadLeft(18, '0'));
            //    function.SetValue("P_MATNR2", pMat2.PadLeft(18, '0'));
            //    function.SetValue("P_REC_REF", pRef);
            //    function.SetValue("P_PEDIDO", pPedido.PadLeft(10, '0'));
            //    function.Invoke(dest);

            //    IRfcTable T_RETURN = function.GetTable("T_RETURN");
            //    rpta = new List<GenericBE>();
            //    foreach (IRfcStructure r in T_RETURN)
            //    {
            //        GenericBE g = new GenericBE();
            //        g.Descripcion = "Invalido";
            //        g.Codigo = r.GetString("TYPE");
            //        if (r.GetString("TYPE").Equals("p") && !r.GetString("MESSAGE").Equals(""))
            //        {
            //            g.Descripcion = r.GetString("MESSAGE");
            //        }
            //        else if (r.GetString("TYPE").Equals("1") && !r.GetString("MESSAGE").Equals(""))
            //        {
            //            g.Codigo = "m" + r.GetString("TYPE");
            //            g.Descripcion = r.GetString("MESSAGE");
            //        }
            //        else if (r.GetString("TYPE").Equals("2") && !r.GetString("MESSAGE").Equals(""))
            //        {
            //            g.Codigo = "m" + r.GetString("TYPE");
            //            g.Descripcion = r.GetString("MESSAGE");
            //        }
            //        rpta.Add(g);
            //    }
            //}
            //catch (Exception e)
            //{
            //    rpta = null;
            //}
            
            //return rpta;
            return null;
        }
    }
}
